<?
/*
-------------------------------
Script - EvaGb
-------------------------------
File - admin.class.php
-------------------------------
Function - Вспомогательный класс для работы с системой (администрирования)
-------------------------------
*/
class admin {
    private $db,$tpl;
    public  $error,$result;
    function __construct() {
        $this->db=locator::get()->db();
        $this->tpl=locator::get()->tpl();
    }
    function ban($id_post,$etime=0,$ip=0) {
        if (!$etime) $etime=time()+99999999999;
        if (!$ip) {
            $sql=$this->db->query("SELECT * FROM {$this->db->pref}_post WHERE id_post='$id_post'");
            if (mysql_num_rows($sql)) {
              $row=$this->db->fetch_array($sql);
              if ($this->db->insert("badip","NULL,'".md5($row['ip'])."','".time()."','".$etime."','$id_post'")) {
                  $this->error="IP {$row['ip']} добавлен в чёрный список до ".date("d.m.Y",$etime)." числа";
                  return true;
              }else {
                  $this->error="Ошибка при добавлении IP в чёрный список ".mysql_error();
                  return false;
              }
            }else {
              $this->error="Ошибка: Такого сообщения не существует";
              return false;
            }
        }else {
           if ($this->db->insert("badip","NULL,'".md5($ip)."','".time()."','".$etime."','0'")) {
                 $this->error="IP $ip добавлен в чёрный список до ".date("d.m.Y",$etime)." числа";
                 return true;
           }else {
                $this->error="Ошибка при добавлении IP в чёрный список ".mysql_error();
                return false;
           }
        }
    }
    function reban($id_post,$ip=0) {
          if (!$ip) {
              if ($this->db->del("badip","fild='$id_post'")) {
                  $this->error="IP удалён из чёрного списка";
                  return true;
              }else {
                  $this->error="Ошибка при удалении IP из чёрного списка ".mysql_error();
                  return false;
              }
          }else{
              if ($this->db->del("badip","ip='".md5($ip)."'")) {
                  $this->error="IP удалён из чёрного списка";
                  return true;
              }else {
                  $this->error="Ошибка при удалении IP из чёрного списка ".mysql_error();
                  return false;
              }
          }
    }
    function updatepost($id_post,$arr) {
            $q=array();
            foreach($arr as $key=>$val) {
                $q[]="`$key`='$val' WHERE id_post='$id_post'";
            }
            if ($this->db->update("post",$q)) {
                $this->error="Изменения внесены в БД";
                return true;
            }else {
                $this->error="Ошибка при изменении сообщения  ".mysql_error();
                return false;
       }
    }
    function delpost($id_post) {
        if ($this->db->del("post","id_post='$id_post'") && $this->db->del("badip","fild='$id_post'")) {
            $this->error="Сообщение удалено";
            return true;
        }else {
            $this->error="Ошибка при удалении сообщения ".mysql_error();
            return false;
        }
    }
    function auth($login,$pass) {
        $adm=$GLOBALS['_gb_cnf']['admins'];
        $this->error="Ошибка: Неверный логин";
        for($i=0,$c=count($adm);$i<$c;$i++) {
            if (strtolower($adm[$i]['login'])==strtolower($login)) {
                if (strtolower($adm[$i]['pass'])==strtolower($pass)) {
                    $this->error='';
                    return true;
                }else {
                    $this->error="Ошибка: Неверный пароль";
                }
              break;
            }
        }
         return false;
    }

    
}
?>
